import request from './request'

/**
 * 用户登录
 * @param {Object} data - 登录数据
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @returns {Promise<Object>} - 登录结果
 */
export function login(data) {
  return request({
    url: '/user/login',
    method: 'post',
    data
  })
}

/**
 * 用户注册
 * @param {Object} data - 注册数据
 * @param {string} data.username - 用户名
 * @param {string} data.password - 密码
 * @param {string} data.repeatPassword - 重复密码
 * @param {string} data.email - 邮箱
 * @param {string} data.phone - 手机号
 * @returns {Promise<boolean>} - 注册结果
 */
export function register(data) {
  return request({
    url: '/user/register',
    method: 'post',
    data
  })
}

/**
 * 获取登录用户信息
 * @returns {Promise<Object>} - 用户信息
 */
export function getLoginUserInfo() {
  return request({
    url: '/user/getLoginUserInfo',
    method: 'post'
  })
}

/**
 * 退出登录
 * @param {Object} data - 包含用户ID的对象
 * @returns {Promise<void>}
 */
export function logout(data) {
  return request({
    url: '/user/loginOut',
    method: 'post',
    data
  })
}

/**
 * 更新用户信息
 * @param {Object} data - 用户信息
 * @param {number} data.id - 用户ID
 * @param {string} data.username - 用户名
 * @param {string} data.email - 邮箱
 * @param {string} data.phone - 手机号
 * @param {string} data.avatar - 头像
 * @param {number} data.gender - 性别
 * @param {Date} data.birthDate - 出生日期
 * @returns {Promise<Object>} - 更新后的用户信息
 */
export function updateUserInfo(data) {
  return request({
    url: '/user/updateUserInfo',
    method: 'post',
    data
  })
}

/**
 * 禁用用户 (管理员权限)
 * @param {Object} data - 包含用户ID的对象
 * @returns {Promise<void>}
 */
export function banUser(data) {
  return request({
    url: '/user/banUser',
    method: 'post',
    data
  })
}

/**
 * 启用用户 (管理员权限)
 * @param {Object} data - 包含用户ID的对象
 * @returns {Promise<void>}
 */
export function unBanUser(data) {
  return request({
    url: '/user/unBanUser',
    method: 'post',
    data
  })
}

/**
 * 获取用户列表（分页）
 * @param {Object} data - 查询参数
 * @returns {Promise<Object>} - 用户列表
 */
export function getUserList(data) {
  return request({
    url: '/user/list/page',
    method: 'post',
    data
  })
}

/**
 * 添加用户
 * @param {Object} data - 用户信息
 * @returns {Promise<Object>} - 添加后的用户信息
 */
export function addUser(data) {
  return request({
    url: '/user/add',
    method: 'post',
    data
  })
}

/**
 * 更新用户信息（管理员）
 * @param {Object} data - 用户信息
 * @returns {Promise<Object>} - 更新后的用户信息
 */
export function updateUser(data) {
  return request({
    url: '/user/update',
    method: 'post',
    data
  })
}

/**
 * 删除用户
 * @param {Object} data - 包含用户ID的对象
 * @returns {Promise<void>}
 */
export function deleteUser(data) {
  return request({
    url: '/user/delete',
    method: 'post',
    data
  })
}

/**
 * 重置用户密码
 * @param {Object} data - 包含用户ID和新的密码的对象
 * @returns {Promise<void>}
 */
export function resetPassword(data) {
  return request({
    url: '/user/resetPassword',
    method: 'post',
    data
  })
}

/**
 * 修改密码
 * @param {Object} data - 包含原密码和新密码的对象
 * @returns {Promise<void>}
 */
export function changePassword(data) {
  return request({
    url: '/user/changePassword',
    method: 'post',
    data
  })
} 